This invention relates to a system architecture presenting a uniform interface for various data transfer functions of the system. In particular, it relates to a new processor and system architecture wherein a common I/O interface is presented for multiple processor and system functions provided by expansion boards connected to the system.
In conventional systems, different types of connectors are generally included on the system motherboard, to receive add-on cards or boards (“expansion boards”) with various types of functionality. Such expansion boards may include memory modules, I/O modules, modules carrying additional processors of various types (including coprocessors such as math coprocessors and graphics processors), network controller modules and interconnects, disk controllers, crossbar extenders, and so on.
The functional module add-on capability for a given system is generally determined in advance by the system architect. For instance, it is typical for a system to have a certain memory expansion capability, and to that end a specific number of dedicated memory expansion slots that receive memory modules are formed on the motherboard. Typically, also, a system has a set amount of processor capability (e.g. it may be designed to handle up to a maximum of four processors), with the processor slots or connections on the motherboard also predetermined. The same is true for input/output capability: the I/O capacity of the system is determined in advance, and the appropriate connections are provided for that amount and type of I/O.
There are inherent inefficiencies in the current approach to system design. For instance, while a system will generally have the capability of expanding its memory to a predetermined number of megabytes or gigabytes, a given user may have need for far less than the maximum, which wastes any excess. The user has, however, paid for the excess capacity, which makes it uneconomical, and in addition motherboard surface area is wasted, which could have been used for some other function. The same inefficiencies can be observed for I/O capacity, multiprocessor expansion capacity, multiple network connections, etc.
Thus, there is a trade-off required today for providing a great amount of a given type of capability. For instance, if multiple types of network connections are to be provided—Ethernet ports, multiple USB connections, parallel ports, serial ports, and so on—then this limits the amount of space on the motherboard for such capabilities as additional PCI slots, memory module slots, coprocessor slots, etc.
It would therefore be advantageous to provide a system architecture that can be better customized to an individual user's needs, without wasting board or chip area and their associated costs on types or amounts of capacity that will go unused, and at the same time minimizing the trade-off currently experienced between providing different types of expansion capability for the system.
Another problem presented by conventional systems is that the connectors for expansion boards to couple to components off the motherboard are not uniform, and in particular are often disposed on an edge of the card at right angles to the connector edge which is plugged into the motherboard. This presents difficulties for both cabling and ventilation of the system. It would be helpful to not only make the connector arrangement uniform, but to do so in such a way that cabling is facilitated and ventilation flow-through is improved.